package com.hzy.controller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hzy.pojo.Contact;
import com.hzy.pojo.ContactExample;
import com.hzy.service.ContactService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * @Package: com.hzy.controller
 * @ClassName: ContactController
 * @Author: 862982795
 * @CreateTime: 2021/09/03 15:20
 * @Description:
 */
@Controller
public class ContactController {
    @Resource
    public ContactService contactService;

    @RequestMapping("/getContacts")
    public String getContacts(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, Model model, ContactExample contactExample, HttpSession session) {
        // 这不是一个分页查询
        // 引入 PageHelper 分页插件
        // 在查询之前只需要调用,传入页码，以及每页的大小
        PageHelper.startPage(pageNum, 4);
        // startPage后面紧跟的这个查询就是一个分页查询
        List<Contact> contactList = contactService.selectByExample(contactExample);
        // 使用 PageInfo 包装查询后的结果，只需要将 PageInfo 交给页面就行了
        // 封装了详细的分页信息，包括我们查询出来的数据,传入连续显示的页数
        PageInfo page = new PageInfo(contactList, 5);
        model.addAttribute("pageInfo", page);
        session.setAttribute("contactExample", contactExample);

        return "list";
    }

    @RequestMapping("/toAdd")
    public String toAdd() {
        return "add";
    }

    @RequestMapping("/doAdd")
    public String doAdd(Contact contact, Model model) {
        int i = contactService.insertSelective(contact);
        System.out.println("i=" + i);
        // if (i>0) {
        //     System.out.println("redirect");
        return "redirect:/getContacts";
        // }else {
        //     System.out.println("add");
        //     return "add";
        // }

    }

    @RequestMapping("/toUpdate")
    public String toUpdate(Integer id,Model model) {
        Contact contact=contactService.selectContactById(id);
        model.addAttribute("contact",contact);
        return "update";
    }

    @RequestMapping("/doUpdate")
    public String doUpdate(Contact contact, Model model) {
        int i = contactService.updateByExampleSelective(contact,null);
        System.out.println("i=" + i);
        return "redirect:/getContacts";
    }
}
